package cn.client.data.remoteData.bean

import okhttp3.MultipartBody
import java.io.File

/**
 * TODO:（待修改-添加用户item）动态页面需要的数据
 */
data class DynamicData(
    val id: Int,   // 动态唯一标识
    val uid: Int,  // 动态作者id
    val content: String,  // 动态的文本内容
    val likeNum: Int?,  // 点赞数量
    val isLike: Int?,  // 当前用户是否点赞
    val gmtCreate: Long,  // 发布日期
    val dynamicImage: DynamicImage?,  // 用于动态列表展示页，显示单张图片
    val images: List<DynamicImage>?  // 用于动态信息，显示多张图片
    )

/**
 * 动态图片数据
 */
data class DynamicImage(
    val id: Int,
    val did: Int,
    val image: String,
    /* 状态（1动态 2草稿） */
    val status: Int?
)

// 上传动态
data class PublishDynamic(
    val uid: Int,
    val content: String,
    val category: Int,
    val images: List<File>,
    val subject: List<Int>?
)

data class ImageData(
    val url: String
)

data class ImagesData(
    val id: Int,
    val did: Int,
    val image: String,
    val status: Int
)

// 话题
data class SubjectsData(
    val id: Int,
    val sname: String
)
// 显示草稿列表的单项
data class DraftItem(
    val id: Int,
    val uid: Int,
    val content: String,
    val category: Int,  // （0发布动态，1暂存草稿）
    val image: ImageData,
    val subject: Int,
    val gmtCreate: Long,
    val gmtModified: Long
)

// 显示草稿信息
data class DraftInfo(
    val id: Int,
    val uid: Int,
    val content: String,
    val category: Int,  // （0发布动态，1暂存草稿）
    val image: ImagesData,
    val subject: SubjectsData,
    val gmtCreate: Long,
    val gmtModified: Long
)

// 删除草稿、转为动态、查看指定动态、删除动态
data class TakeD(
    val id: Int,
    val uid: Int
)

// 修改草稿
data class UpdateDraft(
    val uid: Int,
    val content: String,
    val category: Int,  // （0发布动态，1暂存草稿）
    val images: MultipartBody.Part,   // 文件
    val subject: List<Int>   // 话题数组
)

// 修改动态
data class UpdateDynamic(
    val id: Int,
    val content: String,
    val images: MultipartBody.Part,   // 文件
    val subject: List<Int>   // 话题数组
)